<?php
require_once("../Datos/Selector.php");
require_once("../Datos/SubConsulta.php");
require_once("../Datos/Tablas/Tbl_ec_clientes.php");
require_once("../Datos/Tablas/Tbl_ec_localidades.php");
require_once("../Datos/Selectores/Sel_Ventas_Vencidas.php");

class Sel_Deudores_Localidad extends Selector{

	function Sel_Deudores_Localidad(&$conexion){
		$this->Selector($conexion);

		$this->Nombre = "Deudores_Localidad";
		$this->estTablaBase(new Tbl_ec_clientes($conexion, ''));

        $relacionada = new Tbl_ec_localidades($conexion, '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('cli_localidad'), $this->obtCampoRelacionado('ec_localidades', 'loc_id'), '=');
		
		$relacionada = new SubConsulta(new Sel_Ventas_Vencidas($conexion), '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('cli_id'), $this->obtCampoRelacionado('Ventas_Vencidas', 'ped_cliente'), '=');

		$campo = $this->tablaBase->obtCampo('cli_nombre');
		$campo->estAlias('Nombre');
		$campo->estEsGrupo(1);
		$this->agregarCampoVisible($campo);

		$campo = $this->tablaBase->obtCampo('cli_apellido');
		$campo->estAlias('Apellido');
		$campo->estEsGrupo(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('ec_localidades', 'loc_descripcion');
		$campo->estAlias('Localidad');
		$campo->estEsGrupo(1);
		$this->agregarCampoVisible($campo);
		
		$tabla = $this->obtTabla('Ventas_Vencidas');
		$funcion = new Funcion('Cantidad', '', $tabla);
		$funcion->agregarExpresion('COUNT(Ventas_Vencidas.venc_id)');
		$this->agregarCampoVisible($funcion);
		
		$tabla = $this->obtTabla('Ventas_Vencidas');
		$funcion = new Funcion('Ultimo', '', $tabla);
		$funcion->agregarExpresion('MAX(Ventas_Vencidas.venc_fecha)');
		$this->agregarCampoVisible($funcion);
		
		$tabla = $this->obtTabla('Ventas_Vencidas');
		$funcion = new Funcion('Monto', '', $tabla);
		$funcion->agregarExpresion('FORMAT(Ventas_Vencidas.ped_monto / Ventas_Vencidas.ped_cant_pagos * COUNT(Ventas_Vencidas.venc_id), 2)');
		$this->agregarCampoVisible($funcion);
		
		$this->estCondicion('Ventas_Vencidas.venc_fechapago IS NULL AND Ventas_Vencidas.venc_fecha < CURDATE()');
				
		$this->txtConsulta = $this->GenerarConsulta();
 }
}
?>